Video and digital multimedia aggregator content suggestion engine

ABSTRACT

To allow a user to maximize use of a video and digital multimedia aggregator, a search suggestion engine and corresponding method may be used to provide suggestions of available content. The search suggestion engine starts by constructing a database of metadata elements or word items. The metadata element database may be constructed by using a crawler that periodically or continually crawls a content metadata database and extracts word items from the content metadata database. The word items are then processed according to a number of factors, including part-of-speech, entries in dictionaries and thesaurus and other factors. The thus-processed word items are indexed, and may be provided with a vector value. A subsequent search request submitted by the user may include search criteria that may be provided vector values. A processor within the search suggestion engine compares the vector values to determine if an indexed word item should be considered for retrieving the indexed word item&#39;s associated content. A list of suggested content is then generated. The list of suggested items may be ranked and filtered before being provided to the user.

RELATED APPLICATIONS

[0001] This application is a continuation-in-part of U.S. patentapplication Ser. No. 08/906,469, filed Aug. 5, 1997, entitled“Reprogramable Terminal for Suggesting Programs Offered on a TelevisionProgram Delivery System,” which is a continuation of U.S. patentapplication Ser. No. 08/160,281 filed Dec. 2, 1993, entitled “Terminalfor Suggesting Programs Offered on a Television Program DeliverySystem,” now U.S. Pat. No. 5,798,785, which is a continuation-in-part ofU.S. patent application Ser. No. 07/991,074, filed Dec. 9, 1992,entitled “Remote Control for Menu Driven Subscriber Access to TelevisionProgramming.” The above patent applications and patent are herebyincorporated by reference.

[0002] The following U.S. Patents also are incorporated by reference:

[0003] U.S. Pat. No. 5,798,785, entitled “Terminal for SuggestingPrograms Offered on a Television Program Delivery System;” U.S. Pat. No.5,986,690, entitled “Electronic Book Selection and Delivery System;”

[0004] The following co-pending patent applications also areincorporated by reference:

[0005] patent application Ser. No. 09/191,520, filed Nov. 13, 1998,entitled “Digital Broadcast Program Ordering;”

[0006] patent application Ser. No. 09/289,957, filed Apr. 13, 1999,entitled “Electronic Book Alternative Delivery Systems;”

[0007] patent application Ser. No. 09/289,956, filed Apr. 13, 1999,entitled “Electronic Book Alternative Delivery Methods;” and

[0008] patent application entitled “Video and Digital MultimediaAggregator;” and patent application entitled “Video and DigitalMultimedia Aggregator Remote Content Crawler,” filed on date herein.

TECHNICAL FIELD

[0009] The technical field is television program and digital multimediadelivery systems that incorporate intelligent and flexible programsearch and delivery mechanisms.

BACKGROUND

[0010] Cable television delivery systems greatly expanded the array ofprograms available to television viewers over that provided byover-the-air broadcast systems. Subsequently, satellite televisiondelivery systems, and in particular, digital satellite broadcast systemsfurther expanded the viewing choices for consumers. In the near future,digital broadcast television systems will provide many more programmingchoices for consumers.

[0011] In addition to television programming delivered throughtelevision program delivery systems, other programs and events may beavailable to consumers. These other programs and events includestreaming video sent over wired and unwired, narrowband to broadbandservices, digital audio programs, and other multimedia data.

[0012] Unfortunately, customers are still limited in their televisionviewing choices by the local and regional nature of television deliverysystems. For example, a broadcaster in Boston may provide programming oflocal interests to people in Massachusetts while a broadcaster inSeattle may provide different programming to people in the Seattle area.A person in Boston generally cannot access Seattle programming, otherthan programming that is provided at a national level.

[0013] In addition to this local/regional market segregation, many othersources of programming and events may not be available in a specificviewing area. These other sources may include audio programming,streaming video, local or closed circuit television programming (e.g.,education television programming provided by a state educationdepartment) and other programming.

[0014] Even if certain programming is available in a local viewing area,a viewer may not be aware of its existence. This situation may be theresult of a large array of available programming coupled with a limitedprogram menu or guide. The program guide may be limited in that not allavailable programming can be listed, some programming changes occur thatare not reflected in the program guide, and errors may exist in theprogram guide. In addition, the more comprehensive the program guide,the harder it is for the viewer to search and navigate the program guideto find a desired program.

SUMMARY

[0015] The problems noted above are solved by the video and digitalmultimedia aggregator system and method described herein. Programcontent can be packaged and delivered by the system, including video,television, radio, audio, multimedia, computer software, and electronicbooks, or any content that can be delivered in digital format.

[0016] The aggregator comprises a request and results processing server,a search engine server coupled to the request and results processingserver and a content acquisition server coupled to the request andresults processing server. The request and results processing serverreceives a request for a program, the search engine server searches forthe program and the content acquisition server acquires a program fordelivery to the user. The request and results processing server includesa search request processor that receives information related to theuser's search request and provides the information to a search resultsform builder that creates an electronic search request. The searchrequest may be augmented by using a content search suggestion engine toadd additional search terms and descriptions to the search request. Theaggregator may also include a decoder that decodes program content andprogram metadata from remote sources for storage at the aggregator, andan encoder that encodes content metadata and programs for delivery tothe user. The aggregator may also comprise one or more crawlers, such asa content crawler, to look for program content in the digitalcommunications network.

[0017] The search engine server searches at least a local contentdatabase. The local content database comprises at least two file types.A content file includes a complete program content file. For example,the 1997 movie Titanic may exist in the local content database as acomplete program content file. The complete program content file mayalso include a reference file or metadata that contains additionalinformation related to the content. Alternatively, the metadata may becontained within the complete program content file itself. Suchadditional information in the reference file may include: a programdescription, including program rating, program description, video clips,program length, format (e.g., 4×3 television or 16×9 movies), and otherinformation; billing information and digital rights managementinformation; viewing statistics, including number of times viewed,dates/times viewed, identity of users viewing the program; advertisementinformation to allow ads to be inserted during viewing of the program;and other information.

[0018] The additional information in the reference file and/or thecomplete program content file may be provided in whole or in part to thesystem users. For example, the aggregator may provide a programdescription and accompanying video clips to selected systems users. Thereference file and/or the complete program content file may also be usedby the aggregator for system administration purposes. For example,billing and digital rights management information may be used to collectappropriate fees from system users and to provide such collected fees tothe entities owning rights in the content.

[0019] A remote content crawler continually crawls the digitalcommunication network looking for content to provide to the aggregator.The content provided to the aggregator may be stored in a form of anentire content file. For example, the content may include an entiremovie, television program or electronic book. Alternatively, the contentprovided to the aggregator may be a reference to a content file that isstored at, or that will be available at one of the remote locations. Forexample, the content may be a reference to a future, scheduled livesports event that will be made available to system users. The sportsevent may be provided for a one time fee, as part of a sports package,for which a fee is collected, or as a free event. In the examplesdiscussed above, the content may be stored at the aggregator, and maysubsequently be provided to system users. For the example of the livesports event, the aggregator may store the live sports event and maythen provide the sports event as a replay, in addition to facilitatinglive viewing of the sports event.

[0020] To allow a user to maximize use of the video and digitalmultimedia aggregator, a search suggestion engine may be used to providesuggestions of available content. The search suggestion engine starts byconstructing a database of metadata elements or word items. The metadataelement database may be constructed by using a crawler that periodicallyor continually crawls a content metadata database and extracts worditems from the content metadata database. The word items are thenprocessed according to a number of factors, including metadata fielddescription, part-of-speech, entries in dictionaries and thesaurus andother factors. The thus-processed word items are indexed, and may beprovided with a vector value. A subsequent search request submitted bythe user may include search criteria having vector values. A processorwithin the search suggestion engine compares the vector values todetermine if an indexed word item should be included as a suggestedsearch term to be appended to the user's search criteria. A list ofsuggested content is then generated. The list of suggested items may beranked and filtered before being provided to the user.

[0021] Specifically, in an embodiment, an apparatus for suggestingavailable content in a digital communications network, comprises acontent metadata crawler that searches metadata related to the availablecontent and produces a metadata list, wherein the metadata listcomprises a plurality of metadata elements, and wherein each metadataelement comprises one or more metadata fields; a suggestion keywordindexer coupled to the content metadata crawler, wherein the suggestionkeyword indexer receives the metadata list and indexes the metadataelements; a suggestion database coupled to the suggestion keywordindexer that stores the indexed metadata elements; and a suggestiondatabase processor coupled to the content metadata crawler, thesuggestion keyword indexer and the suggestion keyword database, whereinthe suggestion database processor searches the suggestion database,based on one or more search request criteria, to produce a list ofsuggested search criteria that may be used to identify suggestedcontent. The suggestion keyword indexer, comprises an extraction modulethat extracts and caches a value of each metadata field; a parsingmodule coupled to the extraction module that parses contents of uniquelyidentifying metadata fields, wherein the contents of a uniquelyidentifying field comprises one or more word items; a classifying modulecoupled to the parsing module that classifies one or more of the one ormore word items; a comparison module coupled to the classifying modulethat compares one or more of the one or more word items to determine alist of related terms; and an index matrix record builder that createsand augments an index matrix record for each of the classified worditems.

[0022] The apparatus may also include a dictionary database, a thesaurusdatabase and a lexicon database. The comparison module compares a worditem to entries in the dictionary database, the thesaurus database andthe lexicon database, and the list of related terms includes one or moreof a dictionary definition, lexicon data, and one or more synonyms.

[0023] The classifying module may comprise one or more computationallinguistics tools, such as a rule-based part-of-speech tagging algorithmand a stochastic part-of-speech tagging algorithm, for example. Thecomputational linguistic tools may be used to determine part-of-speechdata of a word item. The index matrix record builder then adds thepart-of-speech data to the index matrix record for the word item.

[0024] The uniquely identifying fields comprise one or more of contenttype, content title, date of production, rating and parental noticeinformation, performer, artist, writer, author, plot summary, keywordlist, and textual content description.

[0025] The index matrix builder may comprise a vector assignment modulethat assigns a word item vector value for a word item, wherein the worditem vector value is a measure of similarity between a word item and arelated term.

[0026] The suggestion database processor may comprise a vectordetermination module that assigns a search term suggestion vector rangeto one or more of the search request criteria; and a vector valuecomparator that compares the search term suggestion vector range and theword item vector value to determine if the word item vector value fallswithin the suggestion vector range, wherein word items that fall withinthe suggestion vector range are used to search the suggestion database.The suggestion vector range may be adjustable by a user of theapparatus. For example, the user may change a setting for relativebreadth of the suggested content where a narrow setting may result infewer, more-relevant suggested content items and a broader setting mayresult in a larger number of broader results.

[0027] The apparatus may further comprise a user-defined filter,including a user history filter; a user profile filter; and an approvedcontent access filter, wherein the suggestion database processorprocesses search results from the suggestion database using theuser-defined filter to produce the list of suggested content. Theapparatus may also include a ranking module, wherein the ranking moduleranks content in the list of suggested content. The ranking module mayrank the content according to one or more of a user historical analysisreport and similarities to previously accessed content by the user.

[0028] A method corresponding to the above apparatus may include thesteps of constructing a database of indexed metadata elements; receivinga content search request from a user of a digital communicationsnetwork; comparing the search request to the database of indexedmetadata elements; caching indexed metadata elements that satisfy thesearch request; retrieving a user profile for the user; filtering thecached metadata elements according to the user profile; ranking thefiltered metadata elements; and providing the ranked metadata elementsto a search request processor as criteria for returning suggestedcontent.

[0029] The step of constructing the database of indexed metadataelements may include opening one or more metadata records in the contentmetadata database; for a current one of the one or more metadatarecords, determining if end-of-file has been reached, reading an entiremetadata entry of the current metadata record, wherein the currentmetadata record comprises one or more uniquely identifying fields, andwherein each of the one or more uniquely identifying fields comprisesone or more terms, extracting and caching a value for each term for oneor more of the one or more uniquely identifying fields, and parsing andcaching terms of each of the uniquely identifying fields. The method mayfurther comprise, for each cached term, determining if an index recordexists for the cached term; and if no index record exists, creating anindex matrix record, and adding the cached value to the index matrixrecord. The step of creating the index matrix record may comprisedetermining a part of speech of the term in order to identify additionalpart of speech data; comparing the term to thesaurus data to determinesimilar terms, and storing the part-of-speech data and the similar termsas the index matrix record.

DESCRIPTION OF THE DRAWINGS

[0030] The detailed description will refer to the following drawings inwhich like numerals refer to like elements, and in which:

[0031]FIG. 1 is a block diagram of primary components of a contentsearch, packaging, and delivery system;

[0032]FIG. 2 is a block diagram of the components of the content search,packaging, and delivery system configured to deliver content to a settop terminal;

[0033]FIG. 3 is a block diagram of the components of the content search,packaging, and delivery system configured to deliver content to apersonal computer terminal;

[0034]FIG. 4 is a schematic of the components of the content search,packaging, and delivery system showing subsystems of an aggregator, auser terminal, and a remote content server;

[0035]FIG. 5 is a schematic of subsystems of a request and resultsprocessing server and components with which the processing serverinteracts as part of the content search, packaging, and delivery system;

[0036]FIG. 6a is a schematic of subsystems of a content searchsuggestion engine and components with which the content searchsuggestion engine interacts as part of the content search, packaging,and delivery system;

[0037]FIG. 6b is a diagram of components of a suggestion keyword indexerused with the search suggestion engine of FIG. 6a;

[0038]FIG. 6c is a diagram of components of a suggestion databaseprocessor used with the search suggestion engine of FIG. 6a;

[0039]FIG. 7 is a schematic of subsystems of a database administrator aspart of the content search, packaging, and delivery system;

[0040]FIG. 8 is a schematic of subsystems of a system administrator andcomponents with which the system administrator interacts as part of thecontent search, packaging, and delivery system;

[0041]FIG. 9 shows a flowchart describing a process of building andmaintaining a database of suggestion terms;

[0042]FIG. 10 shows a flowchart describing a process of using currentsearch request criteria along with user profile and history data forretrieving suggested search parameters from the suggestion database;

[0043]FIGS. 11a-11 c show a search request form; and

[0044]FIGS. 12a-12 b show a search results form.

DETAILED DESCRIPTION

[0045]FIG. 1 is a block diagram of a content search, packaging, anddelivery system 200. The content to be packaged and delivered by thesystem 200 includes video, television, radio, audio, multimedia,computer software and electronic books. Components of the system 200include an aggregator 201 and a user terminal 202, which are connectedusing a wide area distribution system 203. Other components are remotecontent servers 204 that exchange data with the aggregator 201 using awide area network/Internet 205 connection. The user terminal 202 mayincorporate a video display system 207, an audio playout system 208, anaudio/video recording system 209, user input devices 214, an electronicbook reader 230, and a connection to a home network 229 to interact withother devices in the user's home environment. Alternatively, one or moreor all of the video display system 207, the audio playout system 208,the audio/video recording system 209, and the electronic book reader 230may be separate components that are coupled to the user terminal 202.

[0046] The system 200 allows a user to enter search parameters, such askeywords and category headings, and have the aggregator 201 use theseparameters to locate, package, and deliver content to the user terminal202 from numerous sources. The requests and content deliveries can besent over communications links including, but not limited to, telephonelines, coaxial cable, fiber-optic cable, wireless connections, wide areanetworks, the Internet, and other communication media collectivelyrepresented by the wide area distribution system 203. The numeroussources of content are shown in FIG. 4 and include, but are not limitedto, an aggregator local storage 254, local streaming sources 262, remotecontent storage 258, and remote streaming sources 259. In an embodiment,the local streaming sources 262 are comprised of the audio and videochannels being delivered using a cable television headend system thatmay also house the aggregator 201.

[0047] The system 200 will take a user's search request and may performa search of virtually every active and scheduled radio and televisionsource in the world, as well as archived sources of video and audioprogramming such as movies and recorded audio sources and sources ofother multimedia, software, and electronic book content. In anembodiment, the system 200 will also search Internet Web sites and otheronline databases. The user will then be able to select programming orother content for download based on the search results. In anembodiment, the download, or delivery, process can be fulfilled bymaking the content available on a specific channel of a cable televisionsystem, or by transmitting the content using a digital communicationsprotocol, such as the Internet standard TCP/IP, for example. Inaddition, the system 200 is capable of formulating and presenting a listof suggested content based on an analysis of the user's current searchparameters, stored information about previous searches and previouslyselected content downloads and other user-specific or relatedinformation. The system 200 is also capable of notifying a user prior tothe start time of selected programming and availability of other contentusing such notification as an electronic mail message and/or anon-screen message indicating that the scheduled program will bebroadcast at a specified time. The system 200 may support one or moredigital rights management (DRM) systems to track the usage andcopyrights associated with downloaded content and bill the user'saccount as appropriate and provide any license and usage fees to thecontent provider. The system 200 may also implement a users' privacyprotection scheme allowing users to control what information isgathered, limit what is done with that information, and review anddelete a user's profile if desired.

[0048] An overview of an embodiment of the system 200 is shown in FIG. 2where the user terminal 202 is a set top terminal 206 that communicateswith the aggregator 201 through a cable television system headend 210,thereby making use of the cable television system headend 210 highbandwidth concatenated cable system 216. The set top terminal 206 systemmay include a tuner 228, a demultiplexer 231, the video display system207, the audio playout system 208, the audio/video recording system 209,user input devices 214, an electronic book reader 230, and a connectionto the user's home network 229. These components are used to tune,select, view, listen to, and store audio and video programming and othercontent delivered by the system 200. FIG. 2 also shows a communicationspath from one or more remote content servers 204 through the wide areanetwork/Internet 205 directly to the set top terminal 206, whichbypasses the aggregator 201 and cable television system headend 210.This path may be used in the case where the requested content isavailable in the required format from the remote content server 204 andis authorized for direct delivery to the user. In an alternativeembodiment, the aggregator 201 is collocated with the cable televisionsystem headend 210 that is acting as the wide area distribution system203 as is the case when a cable television system is also serving as theuser's Internet service provider.

[0049] An overview of another embodiment of the system 200 is shown inFIG. 3, where the user terminal 202 is a personal computer terminal 211that communicates with the aggregator 201 through an Internet serviceprovider/cable television system headend 215. In this case, the contentmay be delivered by a cable television headend that is operating as anInternet service provider (ISP). The personal computer terminal 211 mayalso include the video display system 207, the audio playout system 208,the audio/video recording system 209, user input device 214, theelectronic book reader 230, and the connection to the home network 229.A communications path may also exist from one or more remote contentservers 204 through the wide area network/Internet 205 directly to thepersonal computer terminal 211. This communications path bypasses theaggregator 201 and the Internet service provider/cable television systemheadend 215 in the case where requested content is in the requiredformat and is authorized for direct delivery to the user.

[0050] The user can receive video and audio programs (i.e., the content)in a number of different ways. First, the tuner 228 in the user terminal202, shown in FIG. 2, can simply tune to the desired program, or thedemultiplexer 231 can select a program from a digital multiplex therebydisplaying the program at the appropriate time. However, the desiredprogram may not be broadcast by the user's cable television systemheadend 210, or the user may want to watch a program that is supplied bythe local headend, but not subscribed to by the user, e.g., a boxingmatch broadcast by a premium channel that the user does not ordinarilyreceive. In these examples, the program can be delivered to the user bythe aggregator 201 using telephone lines, fiber-optic transmissionlines, or other communication media, or using the cable televisionsystem headend 210. In an embodiment, the aggregator 201 can supplyprograms by pulling programs from program delivery systems in the UnitedStates and abroad and delivering the programs to system users. Theaggregator 201 can, therefore, provide a user access to programs outsidethe user's normal viewing area.

[0051]FIG. 4 shows the system 200 and system components in more detail.At a user's location, the user terminal 202 includes the tuner 228, thedemultiplexer 231, a user terminal processor 227, user local storage 212and user local database 213. Coupled to the user terminal 202 may be theuser input devices 214, the video display system 207, the audio playoutsystem 208, the audio/video recording system 209, an electronic bookreader 230, and a connection to the home network 229.

[0052] The user terminal 202 may be coupled through the wide areadistribution system 203 to the aggregator 201 and further through thewide area network/Internet 205 to remote program sources. The remoteprogram sources include the remote streaming sources 259 and the remotecentral storage 258. The remote program sources also include remotedatabases 261 and, through the remote content server 204, a remoteserver database 260.

[0053] The aggregator 201 may include a communications server 250 thatcommunicates with the user terminal 202 through the wide areadistribution system 203. The communications server 250 receives inputsfrom a request and results processing server 300, a content deliveryserver 450 and a system administrator 500. The content delivery server450 receives inputs from a coder and content formatter 253 and a contentacquisition server 400. The content delivery server 450 also accessesthe aggregator local storage 254 and the local streaming sources 262.Finally, the content delivery server 450 provides an output to thesystem administrator 500.

[0054] The coder and content formatter 253 receives inputs from thecontent acquisition server 400, the aggregator local storage 254 and thelocal streaming sources 262. The system administrator 500 receivesinputs from the content and delivery server 450, and communicates withthe content acquisition server 400, the request and results processingserver 300, a search engine server 350, and aggregator archives 255. Adecoder and content formatter 252 is coupled to the content acquisitionserver 400. Finally, a network gateway 251 couples components of theaggregator 201 with the remote content server 204 through the wide areanetwork/Internet 205.

[0055] Programs received at the aggregator 201 may be input to theformatter 253. The formatter 253 reformats, as necessary, all inputcontent into a format that is readily received by the user terminals 202operably connected to the system 200. In addition, the formatter 253 canstore full or partial copies of content in compressed form in theaggregator local storage 254. The aggregator 201 can provide real-timedelivery of certain content, such as a boxing match. In an embodiment,if a large number of users want a particular live program, then thecable television system headend 210 (see FIG. 2), or similar programsource, can broadcast the program on a particular channel available toall the requestors instead of broadcasting the program to eachindividual user over the wide area distribution system 203. In additionto delivery from a cable television headend, content may be provided bya satellite delivery system, over-the-air-broadcast, and through theInternet. See U.S. patent application Ser. No. 09/191,520, entitledDigital Broadcast Program Ordering, hereby incorporated by reference,for additional details of broadcast program delivery.

[0056] The aggregator 201 can also implement a screening process forlimiting the number of programs captured to those programs with aviewing audience above a predetermined threshold. The aggregator 201 maycontain a filter that will pass only programs meeting the predeterminedselection criteria. The filter may include programming that screens thecontent to reject specific items, such as adult content, for example.

[0057] The system administrator 500 records what fees should be paid andto whom. For example, the aggregator 201 will determine to whom anycopyright or other fees should be paid when a program is broadcast.

[0058] The user terminal 202 may be a television, a set top terminal206, a personal computer terminal (not shown), or any wired or wirelessdevice capable of receiving digital or analog data, or some combinationthereof. The user terminal 202 is equipped with the user input devices214 that communicate search criteria to the system 200 as well asnavigate through the user terminal menu system and control the userterminal's other various functions. The user local storage 212 is usedto store and archive content onto one or more removable and/ornon-removable storage devices or media for later access. Removablestorage media may include, but is not limited to, magnetic tape,magnetic disks, optical disks and modules, and electronic memorycartridges. The user local database 213 may store relevant informationabout a user's profile and account. This information includes, but isnot limited to, user name, password, personal information that the userhas authorized for storage, billing information, other users allowedaccess to the account, past search criteria, past content downloadinformation, and library information about stored content. As a consumerprotection device, the user terminal 202 may enable the user to view theinformation stored in the user local database 213 and modify certaindata fields and select which data fields may be reported to a mainsystem database (not shown) within the aggregator 201. Certain fieldsincluding, but not limited to, account numbers and billing informationmay not be allowed this level of user access.

[0059] The user terminal processor 227 may include a central processingunit and all associated hardware, software, and firmware modules toperform all operations within the user terminal 202. These operationsinclude, but are not limited to, managing communications with theaggregator 201 and other networked devices, processing search anddownload requests, displaying search and download results, managing andcontrolling communications with the user local storage 212 and the userlocal database 213, responding to user interaction with presentation ofgraphical user interface (GUI) menus, playing out selected programmingcontent using various audio and video output devices, implementing theuser's part of the digital rights management schema, and administeringthe user's account and billing. The tuner 228 and the demultiplexer 231are used to select an audio/video channel for playout from the channelsavailable on the cable television system 216.

[0060] In an embodiment, the user terminal 202 may incorporate selectedfeatures of the aggregator 201. For example, the user terminal 202 mayinclude a metadata crawler, an aggregator, and program content andprogram metadata storage.

[0061] The user terminal 202 communicates with the aggregator 201 usingthe wide area distribution system 203. Within the aggregator 201, thecommunications server 250 acts as the interface point to the wide areadistribution system 203 for the purpose of managing primarycommunications to system users. The communications server 250 routesincoming user requests and associated user information to the requestand results processing server 300, routes search results and contentdownloads through the wide area distribution system 203 to end users,and routes billing information from the customer billing server (notshown) to the end users. The request and results processing server 300performs the basic processing and routing related to user searchrequests, content download requests, administrative informationrequests, search results, related content suggestions, and programmingnotification.

[0062]FIG. 5 shows individual subsystems of the request and resultsprocessing server 300. The types of requests from a system user include,but are not limited to, programming and other content search requests,content download requests based on results of an earlier search, andadministrative information requests. Requests for administrativeinformation may be automatically generated by the user terminal 202 ormay be manually initiated by the system user. When an administrativerequest is received, a request receiver and router 301 opens a dialogwith a database administrator 502 (see FIG. 7) within the systemadministrator 500 (see FIG. 8), retrieves the requested system user'sadministrative data, and routes the data through the communicationsserver 250 to the user terminal 202. Search requests and contentdownload requests are routed to a search request processor 303 and acontent download request processor 302, respectively. The processors 302and 303 open a dialog with the database administrator 502 and verifythat the user's request is authorized. If the user's request is notauthorized, the processor (302 or 303) sends a message to the userthrough the request receiver and router 301 and the communicationsserver 250 informing the user that the request is denied. The processor(302 or 303) then logs the event with the system administrator 500. Ifthe request is authorized, the processor (302 or 303) formats therequest as necessary and routes content download requests to the contentacquisition server 400 and search requests to the search engine server350.

[0063] In addition to searching for content containing criteria enteredby a system user, a content search suggestion engine 304, in conjunctionwith the search engine server 350 will be able to suggest content to theuser that is related in various ways, such as by category or theme. Thecontent search suggestion engine 304 is shown in detail in FIG. 6a. Forexample, if a user wishes to see programs about Titanic, the contentsearch suggestion engine 304 may, in addition to suggesting programsabout Titanic, suggest or inform the user of programs and other contentsuch as electronic books about ships other than Titanic. Likewise, ifthe search criteria include Johnny Weismuller, an actor who starred inTarzan movies, the content search suggestion engine 304 might suggestprograms and other content about Tarzan featuring someone other thanJohnny Weismuller. Furthermore, the content search suggestion engine 304may suggest programs for viewing based on past search criteria enteredby the user as well as information on content the user has actuallydownloaded. For example, if the search criteria includes JohnnyWeismuller and the user has searched and/or downloaded numeroussports-related programming in the past, the content search suggestionengine 304 may suggest programming and other content including swimmingcompetitions and sports history and biography programming as well asTarzan movies and other content directly related to Johnny Weismullersuch as the Jungle Patrol television series. If the user searched forand received Tarzan movies, the programming search suggestion engine 304might suggest electronic books by Edgar Rice Burroughs. Such electronicbooks could then be downloaded to the user terminal 202 using the widearea network/Intranet 205 bypassing the aggregator 201, or could becompiled at the aggregator 201 for delivery to the user terminal 202.Electronic book delivery systems are described in U.S. Pat. No.5,986,690, entitled “Electronic Book Selection and Delivery System,” toHendricks, and in co-pending patent application Ser. No. 09/289,957,entitled “Electronic Book Alternative Delivery Systems,” and 09/289,956,entitled “Electronic Book Alternative Delivery Methods,” both of whichare hereby incorporated by reference.

[0064] During submission of a content search request, the user may havethe option of disabling the return of suggested content results ifdesired. In order to retrieve results for suggested programming, thecontent search suggestion engine 304 analyzes a search request form (seeFIGS. 11a-11 c) received from the user terminal 202, and performs asearch within a suggestion database 308 for additional search criteriato be used to find suggested content related in some way to the originalsearch request results. These suggested search criteria are appended tothe search request form 618 forming an augmented search request form(not shown) when the search request form 618 is forwarded to the searchengine server 350 in order for a suggested content list to be returned.U.S. Pat. No. 5,798,785 entitled “Terminal for Suggesting ProgramsOffered on a Television Program Delivery System,” and co-pending patentapplication Ser. No. 08/906,469, filed Aug. 5, 1997, entitled“Reprogrammable Terminal for Suggesting Programs Offered on a TelevisionProgram Delivery System,” both of which are hereby incorporated byreference, provide additional details on program suggestion.

[0065] The suggestion database processor 307 (shown in FIG. 6a and inmore detail in FIG. 6c) conducts a search of the suggestion database 308to find related search criteria to use to locate suggested content. Theprocessor 307 also performs management functions for the othersubsystems of the content search suggestion engine 304. When prompted bythe suggestion database processor 307, the content metadata crawler 309crawls, or intensively searches, the metadata in the aggregator localdatabase 501. The suggestion database processor 307 may prompt thecontent metadata crawler 309 on a periodic basis, for example daily.Alternatively, the prompt may be based on the occurrence of a specificevent, such as an update of the aggregator local database 501. In anembodiment, the suggestion database processor 307 does not provide aprompt, and the content metadata crawler 309 continually crawls themetadata files in the local aggregator database 501.

[0066] The content metadata crawler 309 passes a listing of all contentmetadata in the aggregator local database 501 to the suggestion keywordindexer 310. The suggestion keyword indexer 310 then indexes eachmetadata element. (A content metadata element may be a term contained ina record that defines or describes a program or content file.) Thesuggestion keyword indexer 310 may assign each metadata element with avector quantity that describes the metadata element as a suggestionkeyword associated with a particular content entity. In an embodiment,the vector quantity is a measure of similarity between two words. Thevector quantity may be calculated by determining relative values ofseveral categorized descriptions of each word, including word types,parts of speech of each word, and relative locations or linkages in athesaurus and/or lexicon. The indexer 310 then populates the suggestiondatabase 308 with these indexed suggestion keywords, which aresubsequently used by the suggestion database processor 307 along withhistorical data relevant to the user, to supply a list of suggestedsearch terms. The search terms are then added to the search request form618 to create the augmented search request form that is returned to thesearch request processor 303 (see FIG. 5).

[0067] The suggestion keyword indexer 310, shown in detail in FIG. 6b,includes an extraction module 321 that extracts and caches a value ofeach metadata field. Metadata fields may be considered to fall withinone or more categories such as uniquely identifying and non-uniquelyidentifying fields. Non-uniquely identifying fields may be those fieldsthat classify the content, and may include genre, category, subject, andcontent format, for example. The uniquely identifying fields may includeprogram content information, or metadata, including one or more ofcontent type, content title, date of production, rating and parentalnotice information, performer, artist, writer, author, plot summary,keyword list, and textual content description. Coupled to the extractionmodule 321 is a parsing module 323 that parses contents of uniquelyidentifying metadata fields. The contents of a uniquely identifyingfield may include one or more word items that may be used to suggestadditional content for access by the user. Coupled to the parsing module323 is a classifying module 325 that may classify one or more of theword items. A comparison module 327 coupled to the classifying module325 may compare word items to a set of database entries to determine alist of related terms. An index matrix record builder 329 may thencreate and augment an index matrix record for each of the classifiedword items.

[0068] Coupled to the comparison module 327 may be one or moredatabases, such as a dictionary database 331, a thesaurus database 333and a lexicon database 335. The comparison module 327 compares a worditem to entries in one or more of the dictionary database 331, thethesaurus database 333 and the lexicon database 335 and produces, as thelist of related terms, one or more of a dictionary definition, lexicondata, and one or more synonyms.

[0069] The classifying module 325 may include computational linguisticstools, such as a rule-based part-of-speech tagging algorithm 337 and astochastic part-of-speech tagging algorithm 339. The classifying module325 uses the computational linguistic tools to determine part-of-speechdata of a word item. The index matrix record builder 329 may then addthe part-of-speech data to the index matrix record for the word item.

[0070] The index matrix record builder 329 may include a vectorassignment module 341 that assigns a word item vector value for a worditem. The word item vector value may be a measure of similarity betweena word item and a related term.

[0071]FIG. 6c shows the suggestion database processor 307 in moredetail. A vector determination module 343 assigns a search termsuggestion vector range to one or more of the search request criteriacontained in the search request form 618 (See FIGS. 11a-11 c). A vectorvalue comparator 345 compares the search term suggestion vector rangeand the word item vector value to determine if a word item vector valuefalls within the suggestion vector range. Word items that fall withinthe suggestion vector range may be used to search the suggestiondatabase.

[0072] A database administrator 502, shown in detail in FIG. 7, as partof the system administrator 500 (see FIG. 8) maintains the aggregatorlocal database 501 and interfaces with the various components of theaggregator 201 that retrieve information from and store information tothe aggregator local database 501. Word items that fall within thesuggestion vector range may be appended to a search request form (seeFIGS. 11a-11 b) to create an augmented search request form that may beused by the search request processor 303 to return suggested contentresults. A group of individual databases maintained within the databaseadministrator 502 constitutes the aggregator local database 501. Anadministrative database server 509 maintains an aggregatoradministrative database 510, which stores and processes informationincluding, but not limited to, authorized system administrators,passwords, and administrator usage rights. The administrative databaseserver 509 also governs replication of all databases to aggregator localstorage 254 and backup of aggregator local storage 254 to the aggregatorarchives 255. A user database server 511 maintains an aggregator userdatabase 512, which stores and processes information including, but notlimited to, user account data, user profile information, usersubscription services, user access rights, and past user search anddownload data (if authorized by the user).

[0073] A content provider database server 513 maintains a contentprovider database 514, which stores and processes information including,but not limited to, a roster of registered content providers and theiradministrative data, remote provider administrators and their passwordsand access rights, and terms of agreements between providers and theoperator of the particular aggregator 201. A content database server 515maintains an aggregator local content database 516, an aggregator remotecontent database 517, and an aggregator scheduled content database 518.The aggregator local content database 516 stores and processesinformation including, but not limited to, the catalog of all contentstored in the aggregator local storage 254 and all metadata associatedwith that content. The aggregator remote content database 517 stores andprocesses information including, but not limited to, the catalog of allcontent stored in each remote database 261 and all metadata associatedwith that content. The aggregator scheduled content database 518 storesand processes information including, but not limited to, scheduledbroadcast programming content and scheduled streaming program contentavailable to users, available live programming, recurring scheduledprogramming, and program schedule metadata information.

[0074] The system user can initiate content search requests by enteringseveral different types of search criteria using several differentoptions of input device or method. Search criteria can be entered usingkeywords that relate to certain aspects of programming contentincluding, but not limited to, subject, author, title, cast members orperformers, director, and/or content description. A search can be basedon program type or format including, but not limited to, movies,television series, documentaries, sports programs, talk radio, musicradio, and electronic books. The user may input search criteria based onsubject categories including, but not limited to, action, drama,history, educational, juvenile, adult, current events, nature, liveevents, and music categories such as classical, jazz, rock, consumeraffairs, political content, and geographically specific content. Searchcriteria can also be entered based on time of day, channel, and/orcontent provider. The user may also input free form questions usingplain speech patterns. In any case, the different search criteria can beused separately or in conjunction with one another to refine a contentsearch. An example might be the entry of “Titanic ” as a keyword,“Documentary” for program type, and the free form question “What companybuilt Titanic?”.

[0075] The content search suggestion engine 304 shown in FIGS. 6a-6 cbuilds and maintains the suggestion database 308 and analyzes contentsearch requests along with the users' histories and profiles to createlists of suggested search terms to be appended to the search requestform 618. Content is suggested by creating a list of suggested searchcriteria based on the user's profile, history, and current searchrequest and submitting this suggested search criteria in parallel withthe user defined search criteria to the search engine server 350. Thecontent metadata crawler 309 performs a crawl, or thorough search, ofthe content metadata contained in the aggregator local database 501maintained by the system administrator 500. In an embodiment, the searchsuggestion engine 304 may contain and maintain a replica of the contentportion of the aggregator local database 501 in order to performmetadata crawling internally thereby reducing the processor andcommunications loading on the system administrator 500. FIG. 9 is anoverview of the subroutines that build and maintain the suggestiondatabase 308. The process is initiated with routine 101, which receivesinstructions from the suggestion database processor 307 to begin ametadata crawling operation on the aggregator local database (see FIG.8). Routine 101 may then open a communications session with the databaseadministrator 502. Routine 102 then queries the next record in thedatabase and routine 103 tests whether an end-of-file condition withinthe database has been reached. If the end of file condition has beenmet, the metadata crawling process has accessed every record in thelocal aggregator database and processing is passed to routine 113 whichreports administrative data back to the suggestion database processor307 and terminates the metadata crawling process, routine 114. Until theend of file condition has been met, processing is passed from routine103 to routine 104, which reads the entire metadata entry for thecurrent content record into local memory.

[0076] Processing is then routed to the suggestion keyword indexer 310module, which extracts and caches the values, or entries, of eachmetadata field, routine 105. Routine 106 parses the contents of uniquelyidentifying metadata fields by breaking down the entries into componentwords and phrases and eliminating common terms and words such as “the,”“and,” “it,” “which,” “then,” “by,” “of,” “he,” “she,” and “them.”Uniquely identifying metadata fields in the metadata record may be thosemetadata fields that do not have a finite list of potential values.Examples of uniquely identifying fields include content title,performers, artist, writer, author, keyword list, plot summary, andtextual content description. Routine 106 then caches, or saves, eachword item into temporary local memory, or cache, creating a temporarylist of word items. Routine 107 then reads the next cached word item androutine 108 tests whether the end of the cached list of terms has beenreached, in which case the processing is routed back to routine 102 toaccess the next metadata record in the database. Until the end of thecached list is reached, processing is passed to routine 109, whichdetermines if an index matrix record already exists for the current worditem. If an index matrix record does not already exist, routine 110creates a new index matrix record for the word item in the suggestiondatabase 308 and then routes processing to routine 111. Routine 111determines the part of speech of the word item, such as noun or verb,using computational linguistics tools that may include ruled-basedand/or stochastic parts-of-speech tagging algorithms. Routine 111 mayalso access one or more thesaurus and/or lexicon databases and returndata that may include the word item's definition and a list of relatedterms including synonyms. One or more thesaurus and/or lexicon databasesmay reside locally in the suggestion database 308 or elsewhere withinthe system 200 or may reside remotely on the network and may be accessedthrough the network gateway 251. Routine 111 then adds part-of-speech,lexicon, and thesaurus data to the word item's index matrix record.Words that cannot be tagged as known parts of speech may be designatedas possibly being proper nouns or names and are verified against knownproper nouns and names located in the lexicon databases and this data isadded to the word item's index matrix record. The suggestion keywordindexer 310 may add unknown words to the index matrix within thesuggestion database 308 and may track occurrences of unknown word itemsin order to establish recurring word items as desirable entries in theindex matrix and to gradually downgrade and eliminate word items that infact do not have relevance to digital content being made available bythe system 200.

[0077] Processing then continues within the suggestion keyword indexer310 with routine 112. If it was determined earlier by routine 109 thatan index matrix record already existed for the current word item, thenprocessing would have been routed directly to routine 112 bypassingroutines 110 and 111, which would have already been completed for thecurrent word item. Metadata that was cached by routines 105 and 106 forthe current word item is now entered into the index matrix record forthe current word item, routine 112. The index matrix comprises numeroustabular entries or records similar to the structure of a database andeach entry may contain numerous fields with field descriptiveinformation and field entry data that may assume various alphanumericvalues. The values that a field entry may assume may be either unlimitedor may be limited to a finite list of potential values. Algorithms mayoperate on index matrix entries as vector quantities either in whole orin part. In an embodiment, the suggestion database 308 comprises themetadata index matrix that contains a matrix entry for every word itemparsed from all available metadata records in the aggregator localdatabase. The metadata index matrix may be structured so that every worditem has an index matrix record that contains information about thatword item such as the original metadata field where the item was foundand a listing of all other word items found in all other fields. Throughthe iterative metadata crawling and indexing process 100 shown in FIG.9, the suggestion database 308 may be populated with virtually everyword, term, and name associated with all types of digital content to bemade available to system 200 users.

[0078]FIG. 10 shows an overview of the suggested search criteriaretrieval process 120 performed by the suggestion database processor 307in which the current search request criteria along with user profile andhistory data may be used as comparison criteria for retrieving suggestedsearch parameters from the suggestion database 308. The content searchsuggestion engine 304 first receives the search request criteria(routine 121) for the current user search request from the searchrequest processor 303 within the request and results processing server300 and puts the search requests criteria into a vector format like thatof the index matrix records. The suggestion engine 304 then opens acommunications dialog with the database administrator 502 within thesystem administrator 500 and requests and retrieves the user profile anduser history analysis report for the user that has submitted the currentsearch request, routine 122. The user profile comprises content searchparameters and preferences that may be controlled by the user and may beaugmented by the system administrator 500 based on criteria such as useraccount type, user access level, and historical data. The user historyanalysis report is a summary of statistical analysis of the user'sprevious account activities that may include previous search requests,returned search results, and content download requests. The historyanalysis report is compiled by the user database server 511 within thedatabase administrator 502 and comprises information such as apercentage breakdown of content types and genres for which a user hasrequested searches, statistical breakdown of content that the user hasdownloaded, and summary data about content that was selected fordownload from earlier suggested content results.

[0079] The suggestion database processor 307 then takes thevector-formatted search request criteria and performs a comparisonagainst the index matrix, routine 123. Each comparison may determinewhether a particular index matrix record falls within a suggestionvector range of the search criteria, and if so routine 124 caches thatparticular matrix record into a temporary memory list. The suggestionvector range may be a measure of how similar the matrix record is to thesearch criteria and may have its values be adjustable so that tighterranges may result in fewer, more-relevant suggestion criteria and widerranges may result in a larger number of somewhat broader results. Thissuggestion vector range may be adjustable by the user in the form ofscaling how wide or how narrow the user wishes suggested search resultsto be and may also be adjustable automatically by the suggestiondatabase processor 307 based on trend analysis of the user's previousdownload of suggested content. The vector quantity of a search requestcriteria and an index matrix record is a measure of similarity betweenthe two entries that is calculated by determining relative values ofseveral categorical descriptions of each word including word type, partof speech of each word, relative locations or linkages in a thesaurus,and occurrence of a search term within a relevant or similar term fieldof an index matrix record.

[0080] Once the comparison has been completed for the entire indexmatrix, the cached records that fell within the suggestion vector rangeare then filtered by routine 125 according to the user's profile. Thisfiltering may take into account such factors as the user's preferencesand approved content access level. The filtered results are thenforwarded to routine 126, which then ranks the results according to theuser's historical analysis report and ranks the results by relevance andby similarities to previously searched and downloaded content. Theranking of results may take into account historical criteria so that ifa user consistently searches more frequently by selecting program type,then matching program type suggestions will be weighted more andtherefore ranked higher in the suggested search criteria than otherattributes such as genre or content provider. The resulting list ofsuggested search criteria is then formatted into a data file and sent byroutine 127 to the search request processor 303 for inclusion in thecontent search. Processing then stops at routine 128.

[0081] The content suggestion process may be carried out withoutintervention by or the attention of the system user so that the processmay be transparent to the user with the exception that content resultsmay contain a section designated as suggested content or individualcontent listings may be designated as suggested versus being a directresult of search criteria originally input by the user. This system usermay be given the option to control the level of suggested content thatis returned with search results and may range from no suggested resultsup to a broad list of suggested content results. If desired, the usermay also be able select or filter user profile and historical data thatmay be used for the search criteria suggestion process.

In the claims:
 1. An apparatus for suggesting available content in a digital communications network, comprising: a content metadata crawler that searches metadata related to the available content and produces a metadata list, wherein the metadata list comprises a plurality of metadata elements, and wherein each metadata element comprises one or more metadata fields; a suggestion keyword indexer coupled to the content metadata crawler, wherein the suggestion keyword indexer receives the metadata list and indexes the metadata elements; a suggestion database coupled to the suggestion keyword indexer that stores the indexed metadata elements; and a suggestion database processor coupled to the content metadata crawler, the suggestion keyword indexer and the suggestion keyword database, wherein the suggestion database processor searches the suggestion database, based on one or more search request criteria, to produce a list of keywords to be used to suggest content.
 2. The apparatus of claim 1, wherein the suggestion keyword indexer, comprises: an extraction module that extracts and caches a value of each metadata field; a parsing module coupled to the extraction module that parses contents of uniquely identifying metadata fields, wherein the contents of a uniquely identifying field comprises one or more word items; a classifying module coupled to the parsing module that classifies one or more of the one or more word items; a comparison module coupled to the classifying module that compares one or more of the one or more word items to determine a list of related terms; and an index matrix record builder that creates and augments an index matrix record for each of the classified word items.
 3. The apparatus of claim 2, further comprising one or more of a dictionary database, a thesaurus database and a lexicon database, wherein the comparison module compares a word item to entries in one or more of the dictionary database, the thesaurus database and the lexicon database, and wherein the list of related terms includes one or more of a dictionary definition, lexicon data, and one or more synonyms.
 4. The apparatus of claim 2, wherein the classifying module comprises one or more computational linguistics tools, including a rule-based part-of-speech tagging algorithm and a stochastic part-of-speech tagging algorithm, wherein the one or more computational linguistic tools determine part-of-speech data of a word item, and wherein the index matrix record builder adds the part-of-speech data to the index matrix record for the word item.
 5. The apparatus of claim 2, wherein the uniquely identifying fields comprise one or more of content type, content title, date of production, rating and parental notice information, performer, artist, writer, author, plot summary, keyword list, and textual content description.
 6. The apparatus of claim 2, wherein the index matrix record builder comprises a vector assignment module that assigns a word item vector value for a word item, wherein the word item vector value may be used as a measure of similarity between a word item and a related term.
 7. The apparatus of claim 6, wherein the suggestion database processor, comprises: a vector determination module that assigns a search term suggestion vector range to one or more of the search request criteria; and a vector value comparator that compares a vector value of a search term and the word item vector value to determine if the word item vector value falls within the suggestion vector range of the search term, wherein word items that fall within the suggestion vector range may be used to search for suggested content.
 8. The apparatus of claim 7, wherein the suggestion vector range is adjustable by a user of the apparatus.
 9. The apparatus of claim 8, further comprising a user-defined filter, comprising: a user history filter; a user profile filter; and an approved content access filter, wherein the suggestion database processor processes search results from the suggestion database using the user-defined filter to produce the list of suggested content.
 10. The apparatus of claim 9, further comprising a ranking module, wherein the ranking module ranks content in the list of suggested content.
 11. The apparatus of claim 10, where in the ranking module ranks the content according to one or more of a user historical analysis report and similarities to previously accessed content by the user.
 12. A method for suggesting available content in a digital communications network, comprising: receiving a search request from a user of the digital communications network; comparing the search request to a database of indexed metadata elements; caching indexed metadata elements that satisfy the search request; retrieving a user profile for the user; and filtering the cached metadata elements according to the user profile. ranking the filtered metadata elements; and providing the ranked metadata elements to a search request processor as criteria for returning suggested content.
 13. The method of claim 12, wherein the database of indexed metadata elements, comprises one or more of content type, content title, date of production, rating and parental notice information, performer, artist, writer, author, plot summary, keyword list, and textual content description.
 14. A method for suggesting available content in a digital communications network, comprising: constructing a database of indexed metadata elements; receiving a content search request from a user of the digital communications network; comparing the search request to the database of indexed metadata elements; caching indexed metadata elements that satisfy the search request; retrieving a user profile for the user; filtering the cached metadata elements according to the user profile; ranking the filtered metadata elements; and providing the ranked metadata elements to a search request processor as criteria for returning suggested content.
 15. The method of claim 14, wherein constructing the database of indexed metadata elements, comprises: opening one or more metadata records in the content metadata database; for a current one of the one or more metadata records, determining if end-of-file has been reached, reading an entire metadata entry of the current metadata record, wherein the current metadata record comprises one or more of one or more non-uniquely identifying fields and one or more uniquely identifying fields, and wherein each of the one or more uniquely identifying fields comprises one or more terms, extracting and caching a value for each term for one or more of the one or more uniquely identifying fields, and parsing and caching terms of each of the uniquely identifying fields.
 16. The method of claim 15, further comprising, for each cached term: determining if an index record exists for the cached term; and if no index record exists, creating an index matrix record, and adding the cached value to the index matrix record.
 17. The method of claim 16, wherein creating the index matrix record, comprises: determining a part of speech of the term to determine part of speech data; comparing the term to thesaurus data to determine similar terms, and storing the part of speech data and the similar terms as the index matrix record.
 18. The method of claim 15, wherein a metadata crawler crawls a content metadata database of indexed metadata elements to construct the database of indexed metadata elements.
 19. The method of claim 18, wherein the metadata crawler crawls the content metadata database continually.
 20. The method of claim 18, wherein the metadata crawler crawls the content metadata database when directed by a metadata processor.
 21. An apparatus for suggesting available content in a digital communications network, comprising: first searching means for searching metadata related to the available content and producing a metadata list, wherein the metadata list comprises a plurality of metadata elements, and wherein each metadata element comprises one or more metadata fields; means, coupled to the first searching means, for receiving the metadata list and indexing the metadata elements; means, coupled to the indexing means, for storing the indexed metadata elements; and second searching means, coupled to the first searching means, for searching the storing means, based on one or more search request criteria, to produce a list of metadata elements to be used to suggest content.
 22. The apparatus of claim 21, wherein the indexing means, comprises: extraction means for extracting and caching a value of each metadata field; parsing means coupled to the extraction means, for parsing contents of uniquely identifying metadata fields, wherein the contents of a uniquely identifying field comprises one or more word items; classifying means, coupled to the parsing means, for classifying one or more of the one or more word items; comparing means coupled to the classifying means for comparing one or more of the one or more word items to determine a list of related terms; and means for creating and augmenting an index matrix record for each of the classified word items.
 23. The apparatus of claim 22, further comprising one or more of a dictionary database, a thesaurus database and a lexicon database, wherein the comparing means compares a word item to entries in one or more of the dictionary database, the thesaurus database and the lexicon database, and wherein the list of related terms includes one or more of a dictionary definition, lexicon data, and one or more synonyms.
 24. The apparatus of claim 22, wherein the classifying module comprises means for analyzing linguistics.
 25. The apparatus of claim 24, wherein the means for analyzing linguistics comprises one or more computational linguistics tools, including a rule-based part-of-speech tagging algorithm and a stochastic part-of-speech tagging algorithm, wherein the one or more computational linguistic tools determine part-of-speech data of a word item, and wherein means for creating and augmenting an index matrix record adds the part-of-speech data to the index matrix record for the word item.
 26. The apparatus of claim 22, wherein the uniquely identifying fields comprise one or more of content type, content title, date of production, rating and parental notice information, performer, artist, writer, author, plot summary, keyword list, and textual content description.
 27. The apparatus of claim 22, wherein the means for creating and augmenting an index matrix record comprises means for assigning a word item vector value for a word item, wherein the word item vector value may be used as a measure of similarity between a word item and a related term.
 28. The apparatus of claim 27, wherein the second searching means, comprises: means for assigning a search term suggestion vector range to one or more of the search request criteria; and means for comparing a vector value of a search term and the word item vector value to determine if the word item vector value falls within the suggestion vector range of the search term, wherein word items that fall within the suggestion vector range may be used to search for suggested content.
 29. The apparatus of claim 28, wherein the suggestion vector range is adjustable by a user of the apparatus.
 30. The apparatus of claim 29, further comprising means for filtering search results.
 31. The apparatus of claim 30, wherein the means for filtering search results, comprises: a user history filter; a user profile filter; and an approved content access filter, wherein the means for creating and augmenting an index matrix record processes search results from the means for storing the indexed metadata elements using the user-defined filter to produce the list of suggested content.
 32. The apparatus of claim 31, further comprising means for ranking content in the list of suggested content.
 33. The apparatus of claim 32, where in the ranking means ranks the content according to one or more of a user historical analysis report and similarities to previously accessed content by the user. 